perm filename FLOP4.SAI[11,ALS] blob sn#068798 filedate 1973-10-29 generic text, type T, neo UTF8
00010	BEGIN "FLIPS"
00020	DEFINE ⊂="COMMENT"; ⊂ AUG.2,1973;
00030	DEFINE ⊃="";
00040	INTEGER I,J,K,L,M,N,P,PP,Q,R,POINTX,POINTY,STATE,DELTA,VAL,CHAN1,EOF;
00045	INTEGER DVAL,DDVAL,DDDVAL,DK,DDK,DDDK;
00050	INTEGER ARRAY BUF,FLOPS[0:511];
00060	STRING FILEN,READ,READ1,FILEO,READ2,FILEQ;
00070	DEFINE CR="'15",LF="'12",TB="'11",CRLF="CR&LF";
00080	⊂ STATE=0 means on way up
00090	  STATE=1 means on way down;
00100	
00110	PROCEDURE OUTALL(STRING S);
00120	BEGIN
00130	STRING SS; INTEGER J;
00140	SETBREAK(18,0,NULL,"OSN");
00150	SS←SCAN(S,18,J);
00160	OUTSTR(SS);
00170	END;
00180	
00190	FILEN←"HI20.001[CMP,JH]";
00200	  FILEO←"SEG1.FRI";
00210	  POINTY←POINT(6,FLOPS[0],-1);
00220	OUTSTR("Specify DELTA (CR for 15) ");
00230	IF (READ←INCHWL)="" THEN DELTA←15 ELSE DELTA←CVD(READ);
00240	CHAN1←1;
00250	FOR PP←1 STEP 1 UNTIL 26 DO BEGIN "FILEREAD"
00260	  CLOSE(CHAN1); OPEN(CHAN1,"DSK",'10,10,0,0,0,EOF);
00270	SETFORMAT(-3,0); FILEQ←CVS(PP);
00280	
00290	
00300	  FILEN←FILEN[1 TO 5]&FILEQ&"[CMP,JH]";
00310	SETFORMAT(1,0);  FILEQ←CVS(PP);
00320	  FILEO←FILEO[1 TO 3]&FILEQ&".FRI";
00330	OUTSTR(CRLF&FILEN); OUTSTR(TB&FILEO); OUTSTR(CRLF);
00340	LOOKUP(CHAN1,FILEN,0);
00350	J←K←L←STATE←VAL←R←0;
00360	SETFORMAT(6,0);
00370	⊃ FOR I←0 STEP 1 UNTIL 9 DO OUTSTR(CVS(I)); OUTSTR(CRLF&LF);
00380	Q←0;P←1; ⊃ OUTSTR(CVS(Q)&TB&"      ");
00390	WHILE EOF=0 DO BEGIN
00400	  FOR J←0 STEP 1 UNTIL 511 DO BUF[J]←0;
00410	  ARRYIN(CHAN1,BUF[0],512);
00420	  POINTX←POINT(12,BUF[0],-1);
00430	FOR I←0 STEP 1 UNTIL 11 DO BEGIN
00440	  M←0;
00450	  FOR J←0 STEP 1 UNTIL 127 DO BEGIN
00460	    VAL←ILDB(POINTX); IF VAL>2047 THEN VAL←VAL-4096;
00470	    DVAL←VAL-K; DDVAL←DVAL-DK; DDDVAL←DDVAL-DDK;
00475	    IF STATE=0 THEN BEGIN
00480	     IF DDDVAL<DDDK-DELTA THEN BEGIN
00485	      M←M+(DDDK-DDDVAL); STATE←-1; END; END ELSE
00490	     IF DDDVAL>DDDK+DELTA THEN  BEGIN
00495	      M←M+(DDDVAL-DDDK); STATE←0; END;
00500	    K←VAL; DK←DVAL;DDK←DDVAL; DDDK←DDDVAL;
00510	    END;
00515	N←M%400; IF M>63 THEN M←63;
00560	IDPB(N,POINTY); R←R+1;
00570	⊃   IF N>0 THEN OUTSTR(CVS(N)) ELSE OUTSTR("      ");
00580	  IF (P MOD 10)=9 THEN BEGIN Q←Q+10;
00590	⊃   OUTSTR(CRLF&CVS(Q)&TB); P←0; END ELSE P←P+1;
00600	  END;
00610	END;
00620	
00630	CLOSE(CHAN1); OPEN(CHAN1,"DSK",'10,0,10,0,0,0);
00640	ENTER(CHAN1,FILEO,0); R←R%6+2;
00650	ARRYOUT(CHAN1,FLOPS[0],R); RELEASE(CHAN1);
00660	
00670	END "FILEREAD";
00680	END "FLIPS";